{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "from sklearn import datasets\n",
    "from sklearn.svm import SVC\n",
    "\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ True,  True,  True,  True,  True,  True,  True,  True,  True,\n",
       "        True,  True,  True,  True,  True,  True,  True,  True,  True,\n",
       "        True,  True,  True,  True,  True,  True,  True,  True,  True,\n",
       "        True,  True,  True,  True,  True,  True,  True,  True,  True,\n",
       "        True,  True,  True,  True,  True,  True,  True,  True,  True,\n",
       "        True,  True,  True,  True,  True,  True,  True,  True,  True,\n",
       "        True,  True,  True,  True,  True,  True,  True,  True,  True,\n",
       "        True,  True,  True,  True,  True,  True,  True,  True,  True,\n",
       "        True,  True,  True,  True,  True,  True,  True,  True,  True,\n",
       "        True,  True,  True,  True,  True,  True,  True,  True,  True,\n",
       "        True,  True,  True,  True,  True,  True,  True,  True,  True,\n",
       "        True, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False])"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "iris = datasets.load_iris()\n",
    "\n",
    "x = iris['data'][:, (2,3)]\n",
    "y = iris['target']\n",
    "\n",
    "label_filter = (y == 0) | (y == 1)\n",
    "\n",
    "x = x[label_filter]\n",
    "y = y[label_filter]\n",
    "\n",
    "svm_clf = SVC(kernel='linear', C=float('inf'))\n",
    "svm_clf.fit(x,y)\n",
    "\n",
    "label_filter"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_svm_bd(svm_clf, start, end, sv=True):\n",
    "    w = svm_clf.coef_[0]\n",
    "    b = svm_clf.intercept_[0]\n",
    "\n",
    "    x0 = np.linspace(start, end, 200)\n",
    "\n",
    "    decision_bd = -w[0]/w[1] * x0 - b/w[1]\n",
    "\n",
    "    margin = 1/w[1]\n",
    "\n",
    "    up_bd = decision_bd + margin\n",
    "    down_bd = decision_bd - margin\n",
    "\n",
    "    plt.plot(x0, decision_bd, 'k-', linewidth=2)\n",
    "    plt.plot(x0, up_bd, 'k--', linewidth=2)\n",
    "    plt.plot(x0, down_bd, 'k--', linewidth=2)\n",
    "\n",
    "    if (sv == True):\n",
    "        svs = svm_clf.support_vectors_\n",
    "        plt.scatter(svs[:, 0],svs[:, 1], s=180, facecolor='#FAA')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 1008x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(14,4))\n",
    "plt.subplot(121)\n",
    "\n",
    "x0 = np.linspace(0, 5.5, 200)\n",
    "pred_1 = x0 * 5 - 20\n",
    "pred_2 = x0 - 1.8\n",
    "pred_3 = 0.1 * x0 + 0.5\n",
    "\n",
    "plt.plot(x[:,0][y==1], x[:, 1][y==1], 'bs')\n",
    "plt.plot(x[:,0][y==0], x[:, 1][y==0], 'ys')\n",
    "\n",
    "plt.plot(x0, pred_2, 'm-', linewidth=2)\n",
    "plt.plot(x0, pred_3, 'r-', linewidth=2)\n",
    "\n",
    "plt.axis([0, 5.5, 0, 2])\n",
    "\n",
    "plt.plot(x0, pred_2, 'm-', linewidth=2)\n",
    "plt.plot(x0, pred_3, 'r-', linewidth=2)\n",
    "\n",
    "plt.subplot(122)\n",
    "plt.axis([0, 5.5, 0, 2])\n",
    "plt.plot(x[:,0][y==1], x[:, 1][y==1], 'bs')\n",
    "plt.plot(x[:,0][y==0], x[:, 1][y==0], 'ys')\n",
    "plot_svm_bd(svm_clf, 0, 5.5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.subplot(122)\n",
    "\n",
    "plt.plot(x[:,0][y==1], x[:, 1][y==1], 'g^')\n",
    "plt.plot(x[:,0][y==0], x[:, 1][y==0], 'bs')\n",
    "\n",
    "plt.axis([4, 6, 0.8, 2.8])\n",
    "plot_svm_bd(svm_clf, 4, 6, False)"
   ]
  }
 ],
 "metadata": {
  "interpreter": {
   "hash": "2469a70536e4d2335a2ea8907942d0699c37342a371ac185bdb5b0aa6f073890"
  },
  "kernelspec": {
   "display_name": "Python 3.10.3 64-bit",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.3"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
